
import tkinter as tk

from menu_type import MenuType
from score_window import ScoreWindow
from main_window import MainWindow
from student_window import StudentWindow
from user_session import UserSession
class MyMenu:
    def __init__(self,root,**kwargs):
        """初始化功能菜单"""
        menu_root = tk.Menu(root, tearoff=0)
        self.root = root
        # 首页菜单
        menu_home = tk.Menu(menu_root, tearoff=0)
        menu_home.add_command(label="首页", command=lambda: self.goto_window(MenuType.MENU_HOME))
        menu_home.add_separator()
        menu_home.add_command(label="导入")
        menu_home.add_command(label="导出")
        menu_home.add_command(label="退出", command=root.quit)
        # 成绩菜单
        menu_score = tk.Menu(menu_root, tearoff=0)
        menu_score.add_command(label="查询", command=lambda: self.goto_window(MenuType.MENU_SCORE_QUERY))
        menu_score.add_separator()
        menu_score.add_command(label="录入")
        menu_score.add_command(label="修改")
        menu_score.add_command(label="删除")
        # 学生菜单
        menu_student = tk.Menu(menu_root, tearoff=0)
        menu_student.add_command(label="查询", command=lambda: self.goto_window(MenuType.MENU_STUDENT_QUERY))
        menu_student.add_separator()
        menu_student.add_command(label="录入")
        menu_student.add_command(label="修改")
        menu_student.add_command(label="删除")
        # 加入父级菜单 魔术的方法定义与解决方案
        menu_root.add_cascade(label="首页", menu=menu_home)
        menu_root.add_cascade(label="学生成绩", menu=menu_score)
        menu_root.add_cascade(label="学生信息", menu=menu_student)
        # 绑定主窗口
        #main_window.config(menu=menu_root)
        root.config(menu=menu_root)
        # 初始化子窗口
        sub_type = kwargs.get("sub_type")
        if sub_type == MenuType.MENU_SCORE_QUERY:
            ScoreWindow(root)
        elif sub_type == MenuType.MENU_HOME:
            # login_name = kwargs.get("login_name")

            MainWindow(root)
        #初始化学生信息查询窗口
        elif sub_type == MenuType.MENU_STUDENT_QUERY:
            StudentWindow(root)

    '''跳转不同的窗口方法'''
    def goto_window(self,sub_type):

        self.root.destroy()
        # 首先初始化菜单，再初始化具体的子窗口
        window = tk.Tk()
        MyMenu(window,sub_type=sub_type)





if __name__ == "__main__":
    root = tk.Tk()
    MyMenu(root)
    root.mainloop()